package com.qjc;

import java.util.ArrayList;
import java.util.List;

/**
 * 文件描述
 *
 * @ClassName: MySolution
 * @Author: qjc
 * @Date: 2022/7/20 16:07
 */
public class MySolution {

    public static void main(String[] args) {
        int[] arr = new int[]{1, 2, 7};
        List<int[]> allCombinations = getAllCombinations(arr);

    }


    private static List<int[]> getAllCombinations(int[] arr) {
        List<int[]> list = new ArrayList<>();
        int[] newArr = new int[arr.length];
        for (int i = 0; i < arr.length; i++) {
            int temp = arr[i];
            for (int j = i + 1; j < arr.length; j++) {

            }
        }

        return null;
    }

    public static class Test {

        public static void permutation(List<int[]> resultList, int[] arr, int begin, int end) {
            if (begin == end) { // 当只要求对数组中一个数字进行全排列时，只要就按该数组输出即可
                int[] newArr = new int[arr.length]; // 为新的排列创建一个数组容器
                for (int i = 0; i <= end; i++) {
                    newArr[i] = arr[i];
                }
                resultList.add(newArr); // 将新的排列组合存放起来
            } else {
                for (int i = begin; i <= end; i++) {
                    int temp = arr[begin]; // 交换数组第一个元素与后续的元素
                    arr[begin] = arr[i];
                    arr[i] = temp;
                    permutation(resultList, arr, begin + 1, end); // 后续元素递归全排列
                    arr[i] = arr[begin]; // 将交换后的数组还原
                    arr[begin] = temp;
                }
            }
        }

        public static void main(String[] args) {
            List<int[]> resultList = new ArrayList<>();
            int[] arr = {1, 2, 3};
            permutation(resultList, arr, 0, arr.length - 1);
            for (int[] allSort : resultList) {
                for (int i : allSort) {
                    System.out.print(i);
                }
                System.out.println();
            }
        }
    }

}
